﻿using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace FieldTools.Util.Helper
{
    public class CMDHelper
    {
        public static string RunCmd(string cmdExe, string cmdStr)
        {
            string output = "";
            try
            {
                using Process p = new();
                p.StartInfo.FileName = "cmd.exe";
                p.StartInfo.UseShellExecute = false; //不启用shell启动进程
                p.StartInfo.RedirectStandardInput = true; // 重定向输入
                p.StartInfo.RedirectStandardOutput = true; // 重定向标准输出
                p.StartInfo.RedirectStandardError = true; // 重定向错误输出 
                p.StartInfo.CreateNoWindow = true; // 不创建新窗口
                p.Start();
                //如果调用程序路径中有空格时，cmd命令执行失败，可以用双引号括起来
                string str = string.Format(@"""{0}"" {1} {2}", cmdExe, cmdStr, "&exit");
                //向cmd窗口发送输入信息
                p.StandardInput.WriteLine(str);
                p.StandardInput.AutoFlush = true;
                //获取cmd窗口的输出信息
                output = p.StandardOutput.ReadToEnd();
                p.WaitForExit();
            }
            catch (Exception)
            {
                throw;
            }
            return output;
        }
    }
}
